//配置文件
//在node中向外暴露成员的形式module.exports ={} , 使用require("模块标识符")导入模块
const path = require('path')
//html-webpack-plugin插件实现从内存中读取html文件
const htmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
    entry: path.join(__dirname,'./src/main.js'),  //入口，webpack要打包的文件
    output:{
        path:path.join(__dirname,'./dist'),  //打包好的文件至那个目录下
        filename:'bundle.js'  //指定打包好的文件名
    },
    plugins:[
        //webpack配置文件中，所用到的插件
        new htmlWebpackPlugin({
            template:path.join(__dirname,'./src/index.html'), //指定模板页面，根据指定的路径，去生成内存中的页面
            filename:'index.html'//指定生成的页面名称
        })
    ],
    module:{
        //配置所有第三方模块加载器
        rules:[
            //配置处理.css文件的第三方模块的匹配规则
            {test:/\.css$/, use:['style-loader','css-loader']},  //test表示正则表达式匹配, loader调用从右至左
            //配置处理.less文件的第三方模块的匹配规则
            {test:/\.less$/, use:['style-loader','css-loader','less-loader']},
            //配置处理.scss文件的第三方模块的匹配规则
            // {test:/\.scss$/, use:['style-loader','css-loader','sass-loader']},
            //配置处理图片路径的第三方模块的匹配规则
            {test:/\.(jpg|png|gif|bmp|jpeg)$/, use:'url-loader?limit=6666&name=[hash:8]-[name].[ext]'},
            //配置处理字体文件的第三方模块的匹配规则
            {test:/\.(ttf|eot|svg|woff|woff2)$/, use:'url-loader'},
            //配置处理高级语法js文件的第三方模块的匹配规则
            {test:/\.js$/, use:'babel-loader',exclude:/node_modules/},
            //配置处理vue文件的第三方模块的匹配规则
            {test:/\.vue$/, use:'vue-loader'},
        ]
    },
    resolve:{
        alias:{
            'vue$':"vue/dist/vue.js"
        }
    }

}